TCP与UDP区别:TCP是可靠、面向连接的协议,保证数据有序不丢包,适用于HTTP、FTP等;UDP轻量、无连接,实时性高,适用于视频、游戏等。主要差异体现在连接方式、可靠性、速度、头部大小及应用场景。
客户端首先发送一个同步序列号(SYN)消息给服务器,服务端回复一个SYN-ACK消息,最后客户端再发送一个ACK确认消息给服务端,确认已经收到服务端发来的SYN-ACK消息
因为网络请求很复杂,发送方第一次发送请求后,可能由于网络原因被阻塞住了,此时发送方可能又会再次发送请求。
1)如果只有两次握手,那么接收方对于发送方的请求只能接受或者拒绝,同时接收方没办法识别发送方发送的这个请求是旧的还是新的请求,如下图所示:
2)如果网络阻塞时间比较久,发送方可能多次发送请求,且接收方还可能全部接受这些连接(它不清楚,以为都是有效的),这就造成了不必要的资源浪费。
因此三次握手,多了一次发送方确认接收方接受的连接是否争取的验证过程,所以避免了历史重复连接的错误情况。
然而,因为TCP是一个可靠的传输协议,能够保证数据在传输过程不丢失且有序,所以对于以上问题在TCP中引入序列号,使得:
中间一步合并的优点是:接收方告知发送方收到序列号的同时还可以把自己的序列号告知发送方
第一次挥手(FIN - ACK):客户端主动关闭连接,发送 FIN 包,进入 FIN_WAIT_1 状态。服务器收到 FIN 后,表示不再接收数据,但仍可能继续发送数据
第二次挥手(ACK):服务器发送 ACK 包,确认已收到 FIN,此时服务器进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态。
第三次挥手(FIN - ACK):服务器完成所有数据传输后,发送 FIN 包,进入 LAST_ACK 状态。客户端收到 FIN 后,准备关闭连接。
第四次挥手(ACK):客户端发送最后一个 ACK 包,进入 TIME_WAIT 状态,等待可能迟到的 FIN 包,服务器收到 ACK 后,关闭连接,进入 CLOSED 状态。客户端在 TIME_WAIT 计时结束后(2MSL),正式关闭连接。
Client 进入**TIME_WAIT**是为保证所有数据安全接受,防止延迟的FIN包影响新连接的完整性,防止混淆问题。
TCP 是一个全双工协议,也就是说双方都要关闭,每一方都向对方发送 FIN 和回应 ACK。
客户端发起连接断开,代表客户端没数据要发送的,但是服务器可能还有数据没有返回给客户端。
就像我对你说数据发完了,你收到之后回复说好的收到,然后你再对我说你数据发完了,我收到之后也回复你说好的收到。这样才可以保证数据不会丢失
如果我说数据发完了,你收到之后说确认收到,但不说数据是不是发完了,那我收到确认之后就会离开,而你的还没发完的数据就发不了了,那就会造成数据不完整性
一个FIN+ACK 代表一方的数据发送完了,我们有两个端就需要两个 FIN+ACK,也就是四次通信
线程池通过复用线程减少创建销毁开销,提升性能与响应速度。核心参数包括核心/最大线程数、队列、拒绝策略等,支持自定义配置与管理。适用于高并发场景,结合SpringBoot可实现异步任务处理,提高系统稳定性与效率。
Java的ConcurrentModificationException异常介绍和解决方案
ConcurrentModificationException(CME)是Java中一种快速失败(fail-fast)机制,当线程遍历集合时,若集合结构被修改(如add、remove),则抛出该异常。其原理是基于`modCount`与`expectedModCount`的不一致。常见于ArrayList、HashMap等非线程安全集合。解决办法包括:使用Iterator.remove()、CopyOnWriteArrayList、倒序遍历、removeIf()或并发容器如ConcurrentHashMap,以避免并发修改问题。
货拉拉基于Apache Doris构建高效用户画像系统,实现标签管理、人群圈选与行为分析的统一计算引擎,支持秒级响应与大规模数据导入,明显提升查询效率与系统稳定性,助力实时化、智能化运营升级。
针对高校图书馆座位紧张与管理低效问题,本研究设计并实现了一套基于Spring Boot、Vue.js与MySQL的智能预约系统。系统通过移动端实现座位实时查询、预约、签到及违规管理,提升资源利用率与使用者真实的体验。采用Java语言开发,结合前后端分离架构,支持高并发访问,解决传统人工管理排队久、监管难等问题。对比国内外现有方案,本系统在智能化分配、稳定性与可扩展性方面更具优势,助力智慧校园建设,拥有非常良好的应用推广价值。
Spring Boot自动装配基于“约定大于配置”理念,通过@SpringBootApplication、@EnableAutoConfiguration与spring.factories机制,结合条件注解实现智能Bean加载。它根据依赖自动配置组件,大幅简化开发。其核心是AutoConfigurationImportSelector筛选合乎条件的配置类,实现按需装配。开发者可专注业务,享受“开箱即用”的便捷体验。(238字)
阿里云企业账号注册简便,手机号验证码就可以完成注册,后续需进行企业实名认证方可使用。支持营业执照上传或法人支付宝扫码认证,多种方式灵活选择。附详细流程与普遍的问题解答,助力企业快速上云。
为什么实时更新场景下 Doris 查询性能是 ClickHouse 的 34 倍
企业数据分析能力从TP系统起步,随业务发展历经扩展优化,最终走向AP系统独立建设。Apache Doris凭借高并发、低延迟、实时更新与强查询性能,成为实时分析架构升级的理想选择,助力网易云音乐、快手、拉卡拉等公司实现性能倍增与成本优化。
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
364 页 PyTorch 版《动手学深度学习》PDF 开源了(全中文,支持 Jupyter 运行)
SpringBoot整合Java Mail实现Outlook / Office365发送邮件
LBA-ECO ND-30 营养分析和气体通量,森林年代序列,巴西帕拉州